pacenotes_installer\wizard\page/
notification.rs1use windows_sys::Win32::Foundation::{HWND, LPARAM};
2use windows_sys::Win32::UI::Controls as ctl;
3
4const DWLP_MSGRESULT: i32 = 0;
6
7pub unsafe fn notify_code(lparam: LPARAM) -> Option<u32> {
9 let header = lparam as *const ctl::NMHDR;
10 header.as_ref().map(|header| header.code)
11}
12
13pub unsafe fn reply(dialog: HWND, result: isize) -> isize {
15 windows_sys::Win32::UI::WindowsAndMessaging::SetWindowLongPtrW(dialog, DWLP_MSGRESULT, result);
16 1
17}
18
19pub unsafe fn stay(dialog: HWND) -> isize {
21 reply(dialog, ctl::PSNRET_INVALID_NOCHANGEPAGE as isize)
22}
23
24pub unsafe fn query_cancel(dialog: HWND) -> isize {
26 let confirmed = crate::ui::confirm(
27 dialog,
28 &crate::i18n::load_string(crate::i18n::IDS_CANCEL_CONFIRM),
29 );
30 reply(dialog, isize::from(!confirmed))
31}